package com.fowo.api.model.stock;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 入库单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class StockInProductImportPo {

  /** 所属入库单 */
  @ExcelProperty("所属入库单")
  @Size(max = 50, message = "所属入库单长度不能超过50")
  private String parentStockInIdWarehouse;

  /** 产品 */
  @ExcelProperty("产品")
  @Size(max = 500, message = "产品长度不能超过500")
  private String productIdName;

  /** 产品名称 */
  @ExcelProperty("产品名称")
  @Size(max = 500, message = "产品名称长度不能超过500")
  private String productName;

  /** sku */
  @ExcelProperty("sku")
  @Size(max = 50, message = "sku长度不能超过50")
  private String sku;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopIdShopName;

  /** 店铺名称 */
  @ExcelProperty("店铺名称")
  @Size(max = 50, message = "店铺名称长度不能超过50")
  private String shopName;

  /** fnsku */
  @ExcelProperty("fnsku")
  @Size(max = 50, message = "fnsku长度不能超过50")
  private String fnsku;

  /** 产品单价 */
  @ExcelProperty("产品单价")
  @DecimalString(message = "产品单价小数格式不正确", label = "产品单价")
  private String unitPrice;

  /** 单位费用 */
  @ExcelProperty("单位费用")
  @DecimalString(message = "单位费用小数格式不正确", label = "单位费用")
  private String unitCost;

  /** 单位入库成本 */
  @ExcelProperty("单位入库成本")
  @DecimalString(message = "单位入库成本小数格式不正确", label = "单位入库成本")
  private String unitReceiptCost;

  /** 良品量 */
  @ExcelProperty("良品量")
  @IntegerString(message = "良品量数值格式不正确", label = "良品量")
  private String goodProduct;

  /** 次品量 */
  @ExcelProperty("次品量")
  @IntegerString(message = "次品量数值格式不正确", label = "次品量", min = 0)
  private String defectiveProduct;

  /** 货值 */
  @ExcelProperty("货值")
  @DecimalString(message = "货值小数格式不正确", label = "货值")
  private String productPrice;

  /** 费用 */
  @ExcelProperty("费用")
  @DecimalString(message = "费用小数格式不正确", label = "费用")
  private String cost;

  /** 入库成本 */
  @ExcelProperty("入库成本")
  @DecimalString(message = "入库成本小数格式不正确", label = "入库成本")
  private String arcd;

  /** 可用仓位 */
  @ExcelProperty("可用仓位")
  @Size(max = 50, message = "可用仓位长度不能超过50")
  private String availablePositions;

  /** 次品仓位 */
  @ExcelProperty("次品仓位")
  @Size(max = 50, message = "次品仓位长度不能超过50")
  private String defectiveProductPosition;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remarks;

  /** 操作 */
  @ExcelProperty("操作")
  @Size(max = 50, message = "操作长度不能超过50")
  private String handle;

  /** 仓库 */
  @ExcelProperty("仓库")
  @Size(max = 50, message = "仓库长度不能超过50")
  private String warehouseIdName;

  /** 仓库名称 */
  @ExcelProperty("仓库名称")
  @Size(max = 50, message = "仓库名称长度不能超过50")
  private String warehouseName;

  /** 主材料单价 */
  @ExcelProperty("主材料单价")
  @DecimalString(message = "主材料单价小数格式不正确", label = "主材料单价")
  private String mainUnitPrice;

  /** 主材料克重 */
  @ExcelProperty("主材料克重")
  @DecimalString(message = "主材料克重小数格式不正确", label = "主材料克重")
  private String gramWeight;

  /** 工费 */
  @ExcelProperty("工费")
  @DecimalString(message = "工费小数格式不正确", label = "工费")
  private String laborCosts;

  /** 入库数量 */
  @ExcelProperty("*入库数量")
  @NotBlank(message = "入库数量不能为空")
  @IntegerString(
    message = "入库数量数值格式不正确",
    label = "入库数量",
    min = 0
  )
  private String quantity;

  /** 待检量 */
  @ExcelProperty("待检量")
  @IntegerString(message = "待检量数值格式不正确", label = "待检量", min = 0)
  private String waitQuantity;

  /** 小计 */
  @ExcelProperty("小计")
  @DecimalString(message = "小计小数格式不正确", label = "小计")
  private String subtotal;
}
